package br.com.edumobi.dados;

import br.com.edumobi.dados.modelos.Questao;
import br.com.edumobi.dados.modelos.Simulado;
import br.com.edumobi.excecoes.ExcecaoCadastroAlunoMalsucedido;
import java.util.Date;
import java.util.List;
import br.com.edumobi.dados.modelos.Aluno;
import br.com.edumobi.dados.modelos.Classificacao;
import br.com.edumobi.excecoes.ExcecaoAtualizacaoDadosAlunoMalsucedida;
import br.com.edumobi.excecoes.ExcecaoAutenticacaoMalsucedida;
import br.com.edumobi.excecoes.ExcecaoConsultaMalsucedida;

import br.com.edumobi.excecoes.ExcecaoRegerarSenhaAlunoMalsucedido;

public interface IDadosNuvem {

    Aluno autenticarAluno(String email, String senha) throws ExcecaoAutenticacaoMalsucedida;

    void cadastrarAluno(String nome, String email, String cpf) throws ExcecaoCadastroAlunoMalsucedido;

    void regerarSenhaAluno(String email) throws ExcecaoRegerarSenhaAlunoMalsucedido;

    void salvarDadosAluno(Aluno aluno) throws ExcecaoAtualizacaoDadosAlunoMalsucedida;

    List<Classificacao> consultarClassificacoes(Date dataDeAtualizacao) throws ExcecaoConsultaMalsucedida;

    List<Simulado> consultarSimulados(Date dataDeAtualizacao) throws ExcecaoConsultaMalsucedida;

    List<Questao> consultarQuestoesDoSimulado(Simulado simulado) throws ExcecaoConsultaMalsucedida;
}
